/*************************************************
filename	: color.h
author		: Stefan lulham
desc		: Contains the graphics color class
*************************************************/
#ifndef D_COLOR_H
#define D_COLOR_H

#define DELGE_GRAPHICSCOLOR_VALUE_MIN			-1
#define DELGE_GRAPHICSCOLOR_VALUE_MAX			255

#define DELGE_GRAPHICSCOLOR_NONE				Color(-1, -1, -1, -1)
#define DELGE_GRAPHICSCOLOR_WHITE				Color(255, 255, 255, 255)
#define DELGE_GRAPHICSCOLOR_BLACK				Color(0, 0, 0, 255)
#define DELGE_GRAPHICSCOLOR_RED					Color(255, 0, 0, 255)
#define DELGE_GRAPHICSCOLOR_GREEN				Color(0, 255, 0, 255)
#define DELGE_GRAPHICSCOLOR_BLUE				Color(0, 0, 255, 255)
#define DELGE_GRAPHICSCOLOR_YELLOW				Color(255, 255, 0, 255)
#define DELGE_GRAPHICSCOLOR_ORANGE				Color(255, 150, 0, 255)
#define DELGE_GRAPHICSCOLOR_PINK				Color(255, 150, 150, 255)

namespace DelGE
{
	namespace Modules
	{
		namespace Graphics
		{
			struct Color
			{
				int color[4];

				Color();
				Color(int iRed, int iGreen, int iBlue);
				Color(int iRed, int iGreen, int iBlue, int iAlpha);
				~Color();

				float GetRedScalar() const;
				float GetGreenScalar() const;
				float GetBlueScalar() const;
				float GetAlphaScalar() const;

				int& operator [](unsigned int uiIndex);
				int operator [](unsigned int uiIndex) const;
			};
		}
	}
}

#endif